/*
 * KararAgaciYontemi.java
 */
package eDoktor.kararMekanizmasi;

import eDoktor.hastalik.Hastalik;
import eDoktor.hastalikGrubu.Cevap;
import eDoktor.kararMekanizmasi.kararAgaci.ID3;
import java.io.File;

import java.util.Map;

/**
 * Karar ağacı yöntemi sınıfı
 * @author Onuralp
 */
public class KararAgaciYontemi implements KararYontemiArayuz {
    private ID3 algoritma;

    /**
     * KararAgaciYontemi sınıfının yapılandırıcısı
     */
    public KararAgaciYontemi() {
        algoritma = new ID3();
    }

    /**
     * Karar ağacı yöntemini karar verme aşamasında kullan.
     * @param vaka Vaka
     * @param hastalik Hastalık
     * @return Hastalığın görülme ihtimali
     */
    @Override
    public double degerlendir(Map<String, Cevap> vaka, Hastalik hastalik) {
        String dosya = "C:\\Veriler\\" + hastalik.getTanim() + ".txt";
        double sonuc = -1.0;
        try {
            algoritma.verileriOku(dosya);
            algoritma.kararAgaciOlustur();
            sonuc = algoritma.kararAl(vaka);
        } catch (Exception hata) {
            System.out.println("Hata(Exception): " + hata.getMessage());
        }
        return sonuc;
    }
}
